I figure it out:
I was using a dynamic POST PROCESS material: what Unreal does is that it copies post process dynamic materials (something to do with blending): this copying happens on the game thread.
So the solution was to loop through all copied post process materials in the pool (mid pool) and found the one that was a copy of my “real” material and also set the parameters on it.