Coroutine not working ? possible errors ?

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class ChangeScene : MonoBehaviour {

	public Animator anim;

	void Start()
	{
		anim = gameObject.GetComponent<Animator> ();
	}

	public void ChangeToScene(string sceneToChange)
	{
		StartCoroutine (LodingScene());
		Application.LoadLevel(sceneToChange);
	}

	IEnumerator LodingScene()
	{
		anim.SetBool ("start", true);
		Debug.Log ("In the Coroutine");
		yield return new WaitForSeconds (0.3f);
	}
}

this is my script which is connected to a button in new canvas UI. and i am trying to make one one animation run as soon as button is pressed

But the scene changes instantly

What can be the possible errors ?

You are starting the coroutine and then instantly changing scenes.

 public void ChangeToScene(string sceneToChange)
     {
         StartCoroutine (LodingScene());
         Application.LoadLevel(sceneToChange);
     }

This isn’t going to wait for the coroutine to finish. It starts the coroutine and then immediately goes on to the next line of code.

If you want to delay the scene load, you need to put the LoadLevel call in the Coroutine.

 public class ChangeScene : MonoBehaviour {
 
     public Animator anim;

     private bool coroutineHasStarted = false;
     void Start()
     {
         anim = gameObject.GetComponent<Animator> ();
     }
 
     public void ChangeToScene(string sceneToChange)
     {
        if( ! coroutineHasStarted)
        {
             coroutineHasStarted = true;
             StartCoroutine (LodingScene(sceneToChange));
        }
     }
 
     IEnumerator LodingScene(string sceneToChange)
     {
         anim.SetBool ("start", true);
         Debug.Log ("In the Coroutine");
         yield return new WaitForSeconds (0.3f);
        Application.LoadLevel(sceneToChange);
     }
 }