Графический интерфейс программы занимает один поток. Если в нем же запустить chromedriver для выполнения необходимых нам действий, то мы не сможем читать логи, очищать их, нажимать кнопки — пользоваться интерфейсом программы (при этом не важно, запущен ли браузер в оконном или безоконном режиме)
Помимо этого, функция, обновляющая базу подписок, должна работать параллельно основной, чего можно добиться только с помощью многопоточности.
В данном случае процессы не уместны, потому что нам нужно пользоваться общей памятью: логами, списком подписок, настройками — а память отдельных процессов полностью изолирована. Так же, потоки более легковесные.