Копайте в сторону threading. Для запуска функции в потоке в самом простейшем варианте можно использовать декоратор. Например:
import threading
def thread(func): # Собственно, декоратор
def wrapper(*args, **kwargs):
current_thread = threading.Thread(target=func, args=args, kwargs=kwargs)
current_thread.start()
return wrapper
@thread # Оборачиваем
def function():
'''
И вот тут код функции, которая всякий раз при вызове
будет запускаться в отдельном потоке.
'''
Но помните главное. При попытке обратиться к sqlite-базе из потока, отличного от того, в котором был создан коннект с ней, она будет ругаться и бросать exception.