OnInspectorGUI not working

I have a gameObject with a script called Hero which looks like this:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hero : MonoBehaviour {

    public int health = 100;

    void Start(){
    }

    void Update(){
    }
}

I also have this editor script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class GUI_Helper : Editor
{

    [CustomEditor(typeof(Hero))]
    public override void OnInspectorGUI()
    {
        Debug.Log("Unity please show me a label");
        GUILayout.Label ("This is a Label in a Custom Editor");
        GUILayout.Button("click me");
    }
}

But I never see the gui. Am I doing something wrong?

CustomEditor attribute goes before the class definition (public class GUI_Helper : Editor), not where it is now.