Since usually all Forms run on the "User Interface Thread" a.k.a. "Main Thread", your first form should not freeze in the first place.
Instead, the heavy load should be lifted by a separate thread:
BackgroundWorker[
^] is your friend here. If you want to prevent user from interfering via first form, you can make the second a
modal form[
^]. Your BackgroundWorker then
reports progress[
^] to the second form.