Type annotation for singleton class?

I'm trying to start using type annotations in Python3 and I ran into a case that I'm unsure how to deal with.

Consider the following singleton class:

class Singleton:

    _instance = None

    @classmethod
    def get_instance(cls):
        if cls._instance:
            return cls._instance

        cls._instance = Singleton.__new__(cls)
        cls._instance.__initialize()
        return cls._instance

    def __initialize(self):
        ...
        # do whatever initialization is needed here

This works great, however I would like to indicate the return type of get_instance. I Tried this:

class Singleton:

    _instance = None

    @classmethod
    def get_instance(cls) -> Singleton:
        if cls._instance:
            return cls._instance

        cls._instance = Singleton.__new__(cls)
        cls._instance.__initialize()
        return cls._instance

    def __initialize(self):
        ...
        # do whatever initialization is needed here

This makes my editor very happy. It can figure out that the object obtained from get_instance is a Singleton and as a result all the auto-completion is working as expected.

Unfortunately this does not run. Importing this module give this error:

>>> import singleton
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/harding/singleton.py", line 1, in <module>
    class Singleton:
File "/home/harding/singleton.py", line 3, in Singleton
    def get_instance(cls) -> Singleton:
NameError: name 'Singleton' is not defined

I can get around this by setting Singleton = None prior to the class definition, but this seems gross (and the linter agrees with me).

Is there a generally accepted way to deal with this problem?