One possible reason for this to be happening could be that the
Application class has the StartupUri attribute set (to
Shell.xaml or the name of your shell).
Thus, since the bootstrapper creates and shows an instance of the shell, and the
StartupUri does the same thing (but without attaching RegionManagers), you will have two Shells.
If this is the case the following document from the Prism-v2 documentation might be useful for you (assuming you are using Prism-v2 WPF):
How to: Create a Solution Using the Composite Application Library for WPF
If this is not your scenario, please send more information to try and reproduce the issue.
Please let me know if this helps.