Does it work for you if you do:
with basic_model: # draw 500 posterior samples trace = pm.sample(500, cores=1)
?