В случае flask+gevent вы просто для запуска сервера используете gevent.wsgiserver (или как-то так, не помню точное название), и передаёте ему объект приложения Flask
По умолчанию, gevent wsgi server будет использовать главный пул гринлетов в родительском процессе, тем самым он нагрузит ваше ядро, на котором живёт сервер, по максимуму
При этом вы не запариваетесь про доступ к экземплярам парсеров и других ваших объектов, это решается но более высоком уровне средствами gevent (а точнее того, как он работает с гринлетами - формально, с "потоками")
А после запускаете несколько серверов и балансируете между ними нагрузку
Если вы не хотите заниматься балансировкой нагрузки, можно попробовать при создании gevent wsgi server передать ему пул listener'ов и в итоге получите пул подсерверов, которые будут слушать один порт и сами делить друг с другом запросы