Ve výchozím nastavení TornadoScheduler spouští naplánované úlohy ve fondu vláken. Vaše konkrétní úloha však používá IOLoop, a proto očekává, že bude spuštěna ve stejném vlákně. Chcete-li to vyřešit, můžete použít metodu add_callback() tornado IOLoop k naplánování úlohy, která má být spuštěna ve vlákně IOLoop co nejdříve.
Asi takhle:
def your_scheduled_task():
IOLoop.instance().add_callback(your_real_task_function)
nebo ještě lépe:
scheduler.add_job(IOLoop.instance().add_callback, 'interval', minutes=1, args=[GetWeather])