По подразбиране TornadoScheduler изпълнява планирани задачи в пул от нишки. Вашата конкретна задача обаче използва IOLoop и така очаква да бъде изпълнена в същата нишка. За да поправите това, можете да използвате метода add_callback() на tornado IOLoop, за да планирате изпълнение на задача в нишката на IOLoop възможно най-скоро.
Ето така:
def your_scheduled_task():
IOLoop.instance().add_callback(your_real_task_function)
или още по-добре:
scheduler.add_job(IOLoop.instance().add_callback, 'interval', minutes=1, args=[GetWeather])