Mitigating membrane fouling with sinusoidal spacers