Answering my own question.. The problem was the line:
validates_associated :child
the :autosave and the :inverse_of options already do what I wanted. The validates_associated is unnecessary and, as I read, deprecated.
The :autosave option makes the parent save the loaded child that is associated, before saving the parent.
With the :inverse_of option, it will save the child, run its validations and, if something's wrong, add the child's errors to the parent without saying that the "child is invalid".
Also..I did not use the accepts_nested_attributes_for. So I loaded the child and the parent at the parent's controller and then saved the parent:
@parent = Parent.new(params[:parent])
@parent.build_child(params[:parent][:child])
if @parent.save
redirect_to(@parent ....etc.....
The errors flashed as I wanted.
Bye :)