I suggest adding these two functions to the unique_list.py file.
It will make the UniqueList picklable and thus enable parallelization, e.g., with multiprocessing or concurrent.futures.
def __reduce__(self):
return (self.__class__, (list(self),))
def __setstate__(self, state):
self._set = set(state)
super().__init__(state)