You have a few options:
- Use earliest begin constraint on a task.
- Use rubber dependencies which do not move successors backwards.
- Create a fake milestone at the desired start date and link it with your task. This way you will have an additional constraint which prevents task from moving earlier.
You can read about the first two options in the docs on scheduler.