How to keep "Loading" animation from freezing while loading a large level?

I have a simple scene with an animated “loading” spinner (it’s a uGUI animated sprite) along with a script that loads my actual game scene. The problem is that the loading animation freezes while Unity is loading the game scene – several seconds of lag. Is there a way to keep the loading animation smooth while Unity loads up the game scene?

Have you considered using Application.LoadLevelAsync ?
That should allow your current scene to run while loading the next.

Note that Application.LoadLevelAsync is a pro feature in Unity versions prior to Unity5.

To get better performance of your loading screen scene you can opt to use Application.backgroundLoadingPriority to lower the priority of loading data asynchronously.

Note that lower priorities give better performance of current scene at the cost of longer load times.

As goibon mentioned, you will need to use LoadLevelAsync to do this. In unity 4, this is only available in the Pro versions.