Every time you use map, the dataset’s fingerprint is updated using a function that takes as input:

the current fingerprint
a hash of the mapped function
The hash is computed using xxhash on the dill dump of the mapped function.
Therefore right now it’s not possible to compute the hash of unpickable functions.

Right now the best workaround I can think of is to make the function compatible with pickle by replacing it woth a class implementing __call__ and custom __getstate__ and __setstate__ to make it work with pickle. We’ve already seen a similar case in this issue 6 for example.
However this is not very practical so I’d like to have a better support for unpickable functions in the lib.
To make it possible to use map with unpickable functions I see two possibilities. The first one would be to add a way to disable fingerprinting but we lose the caching features.
The second option on the other hand makes it possible to use unpickable functions in map while keeping the caching features:
We could simply let the user decorate its mapped function to sign it with informations that are going to be used to get the function’s hash, instead of pickling the function itself.
For example in your case we could imagine an API that works like this:
@signed_function(id="my_sent2vec_preprocessor_v1")
def preprocess(sentences):
    embedded_sents = sent2vec_model.embed_sentences(sentences["text"])
    return {"text": sentences["text"], "embeddings": embedded_sents}

Let me know what you think