There's no really great way to do this. If it's one-time initialization, you might consider displaying a splash screen and then running the code. Or you could start the long process from a timer on the main form after giving it a second or two to display.
No matter what, however, there will be times when a long calculation will freeze interface drawing so the user may see a half-drawn screen... unless you run the long calculations in a separate thread.
So probably the best solution for one-time initialization is to (1) display a splash screen, (2) start a thread or BackgroundWorker to perform your long initialization, (3) when the thread or BackgroundWorker completes, it should close the splash screen and start the main form.
Rod Stephens, Visual Basic MVP
*** New Book ***
"Visual Basic 2008 Programmer's Reference"
Sign up for the free VB
Helper Newsletters at http://www.vb-helper.com/newsletter.html