A simple approach is to DISABLE the main form so that the user can't interact with it:
this.Enable = false;
// ...display your "modal" form...
You can subscribe to the FormClosed() event of the "modal" form so you know when to re-enable the form.
Since the user can't interact with the disabled from they also can't open up multiple instances of your "modal" form.